/**
* Vector - TODO - NOT DONE
*/

//Include guard
#pragma once

#include <memory>
#include <vector>

namespace GTL{
	
	template<class T> class GVector {
		
		//Internal vector for fast copy
		typedef
			std::tr1::shared_ptr<std::vector<T>> RAW_GVECTOR;

		//Constructors
		explicit GVector( const std::vector<T>& data );
		explicit GVector( const GVector& rhs );

		//Destructor
	
		//Member methods, overloaded methods
		RAW_GVECTOR get() { return this.m_data; }
		void swap( const GVector& other );
	
		//RCSP to conform with RAII
	private:
		RAW_GVECTOR m_data;
	};
}